using OrderingSystem.Core.Entities;

namespace OrderingSystem.Core.Interfaces
{
    public interface IDishDiscussionService
    {
        /// <summary>
        /// 获取所有讨论
        /// </summary>
        Task<IEnumerable<DishDiscussion>> GetDiscussionsAsync();

        /// <summary>
        /// 根据条件筛选讨论
        /// </summary>
        Task<IEnumerable<DishDiscussion>> GetDiscussionsFilteredAsync(DishDiscussion discussion);

        /// <summary>
        /// 根据查询条件获取讨论
        /// </summary>
        Task<DishDiscussion> GetDiscussionByQueryAsync(DishDiscussion discussion);

        /// <summary>
        /// 获取菜品讨论
        /// </summary>
        Task<IEnumerable<DishDiscussion>> GetDishDiscussionsAsync(string dishName);

        /// <summary>
        /// 获取讨论详情
        /// </summary>
        Task<DishDiscussion> GetDiscussionAsync(long id);

        /// <summary>
        /// 创建讨论
        /// </summary>
        Task<DishDiscussion> CreateDiscussionAsync(DishDiscussion discussion);

        /// <summary>
        /// 更新讨论
        /// </summary>
        Task<DishDiscussion> UpdateDiscussionAsync(DishDiscussion discussion);

        /// <summary>
        /// 回复讨论
        /// </summary>
        Task<DishDiscussion> ReplyDiscussionAsync(long id, string reply);

        /// <summary>
        /// 删除讨论
        /// </summary>
        Task DeleteDiscussionAsync(long id);
    }
} 